// 默认我们使用 fs.createReadStream  以及 fs.createWriteStream 
// 都是基于文件模块的  

// http 请求，客户端请求服务端的时候，会将发布的内容全部放到可独流中
import { Readable } from 'stream';

class MyReadStream extends Readable {
    _read() {
        this.push('abc')
        this.push(null); // push null之后会触发end事件 
    }
}

const mrs = new MyReadStream;
mrs.on('data', function (data) {
    console.log(data)
})
mrs.on('end', function () {
    console.log('end')
})

// 底层采用的是流的模块 


// import fs from 'fs'
// import path from 'path'
// class Readable {
//     read() {
//         this._read()
//     }
//     push(data) {
//         console.log('emit', data); // 
//     }
// }

// class ReadStream extends Readable {
//     _read() {
//         fs.readFile(path.resolve(import.meta.dirname, '1.txt'), (err, data) => {
//             this.push(data)
//         })
//     }
// }

// let rs = new ReadStream();



// 子类调用父类的read方法 ， 父类会调用子类来实现的_read()